Recent advances in electronics packaging have increased the demand for feature-rich personal computers which occupy the same or less volume as presently available computer products. One such advance has been the packaging of memory and peripheral functions in a "credit card" size form factor defined by the Personal Computer Memory Card Industry Association (PCMCIA). One of the pins on the PCMCIA bus has been defined as a carrier for a "SpkrOut" signal.
The PCMCIA specification suggests that the SpkrOut pin should be operatively connected to the speaker of the host computer to allow a PCMCIA card to generate a sound on the speaker of the host computer. The ability of a PCMCIA card to generate sound may be helpful in a variety of situations. For example, a modem PCMCIA card can be designed to generate a signal over the SpkrOut pin to cause the host computer to "beep" (alert the user) when a remote computer is attempting to communicate with the host computer through the modem.
To support the suggested function of the SpkrOut pin, the host computer must include circuitry for generating sound on its speaker responsive to the signal on the SpkrOut pin. Support for the SpkrOut function is somewhat complicated by the fact that the speaker of the host computer must also generate sound responsive to software running on the host computer ("program audio"). Preferably, any sound generated from the PCMCIA card is generated in addition to, rather than instead of, any program audio. Some computers that have PCMCIA ports have implemented the SpkrOut function by (1) converting the PCMCIA signal to analog, (2) converting the program audio to analog, and (3) combining the two analog signals. The speaker of the host computer is then driven by the combined analog signal.
This analog signal combining process works well for relatively simple SpkrOut sound signals. For example, a PCMCIA card may generate a simple "beep" at the same time as the normal program audio by applying a simple square wave on the SpkrOut line. In host computers which support multiple PCMCIA slots, the various SpkrOut lines may be exclusive or'd (XOR) to generate a single term representing the sound outputs from multiple cards.
One disadvantage of this method of supporting the SpkrOut function is that it leads to duplication of circuitry. Specifically, both the program audio and the PCMCIA audio signals are converted to analog and processed before they are ultimately combined to drive the speaker. Further, the quality of the PCMCIA audio is relatively low.
In light of the foregoing, it is clearly desirable to provide a method and apparatus for driving a speaker based on a signal from one or more PCMCIA cards in addition to normal program audio. Further, it is desirable to process the PCMCIA audio signal with the same circuitry as is used to process the program audio. In addition, it is desirable to provide a system which supports pulse-width-modulated audio generated by PCMCIA cards, in addition to simple "beep" signals.